{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fake data to visualize MWEM's histograms\n",
    "MWEM works by first creating a uniformly distributed histogram out of real data. It then iteratively updates this histogram with noisy samples from the real data. In other words, using the multiplicative weights mechanism, MWEM updates the histograms \"weights\" via the DP exponential mechanism (for querying the original data).\n",
    "\n",
    "Here, we create a heatmap from the histograms. We visualize the histogram made from the real data, and the differentially private histogram. Brighter values correspond to more higher probability bins in each histogram."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import random\n",
    "\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "\n",
    "from snsynth.mwem import MWEMSynthesizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_histo(title,histo):\n",
    "    fig = plt.figure(figsize=(6, 6))\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.set_title(title)\n",
    "    plt.imshow(histo)\n",
    "    ax.set_aspect('equal')\n",
    "    cax = fig.add_axes([0.1, 1.0, 1., 0.1])\n",
    "    cax.get_xaxis().set_visible(False)\n",
    "    cax.get_yaxis().set_visible(False)\n",
    "    cax.set_frame_on(False)\n",
    "    plt.colorbar(orientation='horizontal')\n",
    "    plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/nx/9gd39tcx2lq7c3vmpmfk8vjc0000gn/T/ipykernel_59986/3611354744.py:11: MatplotlibDeprecationWarning: Starting from Matplotlib 3.6, colorbar() will steal space from the mappable's axes, rather than from the current axes, to place the colorbar.  To silence this warning, explicitly pass the 'ax' argument to colorbar().\n",
      "  plt.colorbar(orientation='horizontal')\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Make ourselves some fake data, with a \"hot-spot\" in the distribution\n",
    "# in the bottom right corner\n",
    "df = pd.DataFrame({'fake_column_1': [random.randint(0,100) for i in range(3000)] + [random.randint(80,100) for i in range(1000)],\n",
    "                   'fake_column_2': [random.randint(0,100) for i in range(3000)] + [random.randint(80,100) for i in range(1000)],})\n",
    "\n",
    "synth = MWEMSynthesizer(10.0, 400, 30, 20,[[0,1]])\n",
    "synth.fit(df)\n",
    "\n",
    "plot_histo('\"Real\" Data', synth.synthetic_histograms[0][1])\n",
    "plot_histo('\"Fake\" Data', synth.synthetic_histograms[0][0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Effect of Bin Count\n",
    "Here we can visualize the effect of specifying a max_bin_count. In the original data, we have 100 bins. If we halve that, we see that we still do a pretty good job at capturing the overall distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/joshuaallen/opt/anaconda3/envs/synth/lib/python3.8/site-packages/snsynth/mwem.py:307: Warning: Bin count 101 in column: 0 exceeds max_bin_count, defaulting to: 50. Is this a continuous variable?\n",
      "  warnings.warn(\n",
      "/Users/joshuaallen/opt/anaconda3/envs/synth/lib/python3.8/site-packages/snsynth/mwem.py:307: Warning: Bin count 101 in column: 1 exceeds max_bin_count, defaulting to: 50. Is this a continuous variable?\n",
      "  warnings.warn(\n",
      "/var/folders/nx/9gd39tcx2lq7c3vmpmfk8vjc0000gn/T/ipykernel_59986/3611354744.py:11: MatplotlibDeprecationWarning: Starting from Matplotlib 3.6, colorbar() will steal space from the mappable's axes, rather than from the current axes, to place the colorbar.  To silence this warning, explicitly pass the 'ax' argument to colorbar().\n",
      "  plt.colorbar(orientation='horizontal')\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "synth = MWEMSynthesizer(10.0, 400, 30, 20,[[0,1]], max_bin_count=50)\n",
    "synth.fit(df)\n",
    "\n",
    "plot_histo('\"Real\" Data', synth.synthetic_histograms[0][1])\n",
    "plot_histo('\"Fake\" Data', synth.synthetic_histograms[0][0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
